// 自定义封装axios  http://www.axios-js.com/
import axios from 'axios'
import router from './../router'
// 自定义axios
// 假设接口地址为 https://www.baidu.com/api/list
// 在此处配置 baseURL 为 'https://www.baidu.com'
// 组件中使用 请求地址时，只需要 写上 '/api/list' 即可

// 代码可以运行在 开发环境（yarn serve）  测试环境  生产环境(yarn build)
// process.env.NODE_ENV 当前的运行环境
//  development 开发环境
//  production 生产环境
const isDev = process.env.NODE_ENV === 'development'
const request = axios.create({
  // baseURL: isDev ? 'http://121.89.205.189/api' : 'http://121.89.205.189/api',
  baseURL: isDev ? '' : 'http://121.89.205.189/api',
  timeout: 6000 // 默认60秒，设置为6秒 --- 设置接口的超时请求时间
})

// 拦截器 - 请求拦截器  响应拦截器
// 添加请求拦截器
request.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  // 将token的值可以通过头信息传递到服务器
  config.headers.common.token = localStorage.getItem('token') || ''
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 添加响应拦截器
request.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  // 验证token
  if (response.data.code === '10119') { // token失效
    // 没有传递token 传了错误的token  传了正确的token但是过期了
    router.push('/login')
  }
  return response
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
})

export default request
